home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 94 / 094.d81 / source.sda / BIG BOX SOURCE < prev    next >
Encoding:
Text File  |  1992-01-01  |  11.6 KB  |  1,272 lines

  1.  
  2. open =$ffc0
  3. readst =$ffb7
  4. setlfs =$ffba
  5. setnam =$ffbd
  6. setmsg =$ff90
  7. load =$ffd5
  8. getin =$ffe4
  9. input'buffer =512
  10. clrchn =$ffcc
  11. close =$ffc3   ;a
  12. chrin =$ffcf
  13. chkout =$ffc9  ;x
  14. chkin =$ffc6   ;x
  15. plot =$fff0
  16. chrout =$ffd2
  17. color'pointer =243
  18. screen'line'pointer =209
  19. print'number =$bdcd ;x,a
  20. clear'line =59903
  21. background =53281
  22. border =53280
  23. strout = $ab1e; .A low .Y high
  24. unlisten =$ffae
  25. clall =$ffe7
  26. color1 =53282
  27. color2 =53283
  28. color3 =53284
  29. white =5
  30. crsr'down =17
  31. rvs'on =18
  32. home =19
  33. del =20
  34. red =28
  35. crsr'right =29
  36. green =30
  37. blue =31
  38. black =144
  39. lowercase =14
  40. uppercase =142
  41. crsr'up =145
  42. rvs'off =146
  43. clr =147
  44. insert =148
  45. brown =149
  46. light'red =150
  47. dark'grey =151
  48. medium'grey =152
  49. light'green =153
  50. light'blue =154
  51. light'grey =155
  52. purple =156
  53. crsr'left =157
  54. yellow =158
  55. cyan =159
  56. top'left =176
  57. top'right =174
  58. bottom'left =173
  59. bottom'right =189
  60.  
  61. .org $c000
  62. .obj "@0:big box c000"
  63. ;mem
  64. jmp menu'entry
  65. jmp box'entry  ;     +3
  66. jmp screen'stash;    +6
  67. jmp screen'restore;  +9
  68. jmp linx;            +12
  69. jmp print'at;        +15
  70. jmp center;          +18
  71. jmp ucase;           +21
  72. jmp lcase;           +24
  73. jmp fcase;           +27
  74. jmp bload;           +30
  75. jmp rload;           +33
  76. jmp pfill;           +36
  77. jmp p2fill;          +39
  78. jmp brancher;        +42
  79. jmp bput;            +45
  80. jmp rbput;           +48
  81. jmp dir;             +51
  82. jmp doodle;          +54
  83. jmp reader;          +57
  84. jmp char'repeat;     +60
  85.  
  86.  
  87. ;***sys addr,x,to x,y,to y,s-code,color
  88.  
  89. box'entry lda #0
  90. sta temp
  91. - jsr get'number
  92. ldy temp
  93. sta parms,y
  94. inc temp
  95. cpy #5
  96. bne -
  97.  
  98. fill'box jsr linx
  99. lda 214
  100. pha
  101. lda 211
  102. pha
  103. box'start ldx parms+2
  104. ldy #0
  105. clc
  106. jsr $fff0
  107. jsr old'rom'patch
  108. dec parms
  109.  
  110. - ldy parms+1
  111. - lda parms+4
  112. cmp #255
  113. beq +
  114. sta (209),y
  115. + lda parms+5
  116. sta (243),y
  117. dey
  118. cpy parms
  119. bne -
  120. lda 214
  121. cmp parms+3
  122. beq +
  123.  
  124. inc 214
  125. jsr 58732
  126. jsr old'rom'patch
  127. jmp --
  128. + lda #home
  129. jsr $ffd2
  130. pla
  131. sta 211
  132. pla
  133. sta 214
  134. jmp 58732
  135.  
  136. linx ldy #24
  137. - lda 217,y
  138. ora #128
  139. sta 217,y
  140. dey
  141. bpl -
  142. rts
  143.  
  144. screen'stash sec
  145. jsr plot
  146. stx menuy
  147. sty menux1
  148.  
  149. jsr get'number
  150. sta 252
  151. cmp >1024
  152. bcs +
  153. rts
  154.  
  155. + clc
  156. adc #4
  157. sta 254
  158. lda #0
  159. sta 253
  160. sta 251
  161.  
  162. lda #home
  163. jsr chrout
  164. jsr old'rom'patch
  165. sei
  166. lda #0
  167. sta 1
  168.  
  169. ldx #3
  170. ldy #0
  171. - lda (209),y
  172. sta (251),y
  173. dec 1
  174. lda (243),y
  175. inc 1
  176. sta (253),y
  177. iny
  178. bne -
  179. inc 210
  180. inc 252
  181. inc 244
  182. inc 254
  183. dex
  184. bpl -
  185. dec 254
  186. ldy #233
  187. dec 1
  188. lda 53280
  189. inc 1
  190. sta (253),y
  191. iny
  192. dec 1
  193. lda 53281
  194. inc 1
  195. sta (253),y
  196. iny
  197. lda menuy
  198. sta (253),y
  199. iny
  200. lda menux1
  201. sta (253),y
  202. lda #$77
  203. sta 1
  204. cli
  205. ldy menux1
  206. ldx menuy
  207. clc
  208. jmp plot
  209.  
  210. screen'restore jsr get'number
  211. sta 252
  212. clc
  213. adc #4
  214. sta 254
  215. lda #0
  216. sta 253
  217. sta 251
  218.  
  219. lda #home
  220. jsr chrout
  221. jsr old'rom'patch
  222. sei
  223. lda #0
  224. sta 1
  225.  
  226. ldx #3
  227. ldy #0
  228.  
  229. - lda (251),y
  230. sta (209),y
  231. lda (253),y
  232. dec 1
  233. sta (243),y
  234. inc 1
  235. iny
  236. bne -
  237. inc 210
  238. inc 252
  239. inc 244
  240. inc 254
  241. dex
  242. bpl -
  243. dec 254
  244. ldy #233
  245. lda (253),y
  246. dec 1
  247. sta 53280
  248. iny
  249. inc 1
  250. lda (253),y
  251. dec 1
  252. sta 53281
  253. inc 1
  254. iny
  255. lda (253),y
  256. sta 214
  257. iny
  258. lda (253),y
  259. sta 211
  260. lda #$77
  261. sta 1
  262. cli
  263. jmp 58732
  264.  
  265. menu'entry lda #0
  266. sta temp
  267. sta flag
  268. - jsr get'number
  269. ldy temp
  270. sta menuy,y
  271. inc temp
  272. cpy #6
  273. bne -
  274.  
  275. menu jsr linx
  276. ldx menuy
  277. ldy #0
  278. sty menu'current
  279. clc
  280. jsr plot
  281. jsr old'rom'patch
  282.  
  283. lda menu'highlight
  284. sta mcolor
  285. jsr paint'line
  286.  
  287. menu'wait jsr getin
  288. beq menu'wait
  289.  
  290. ldx menu'current
  291. stx temp
  292.  
  293. cmp #crsr'down
  294. beq menu'down
  295.  
  296. cmp #crsr'up
  297. beq menu'up
  298.  
  299. cmp #13
  300. beq menu'select
  301.  
  302. cmp exit'key
  303. bne menu'wait'loop
  304. dec flag
  305. bmi menu'select
  306.  
  307. menu'wait'loop jmp menu'wait
  308.  
  309. menu'down inc menu'current
  310. lda menu'current
  311. cmp menu'items
  312. bne highlight
  313. lda #0
  314. sta menu'current
  315. jmp highlight
  316.  
  317. menu'up dec menu'current
  318. lda menu'current
  319. cmp #255
  320. beq +
  321. jmp highlight
  322.  
  323. + ldy menu'items
  324. dey
  325. sty menu'current
  326. jmp highlight
  327.  
  328. menu'select lda menu'current
  329. clc
  330. adc menuy
  331. tax
  332. ldy #0
  333. jsr plot
  334. jsr old'rom'patch
  335.  
  336. lda menu'text
  337. sta mcolor
  338. jsr paint'line
  339.  
  340. bit flag
  341. bmi +
  342. lda menu'current
  343. clc
  344. adc #49
  345. sta 631
  346. lda #1
  347. sta 198
  348. + rts
  349.  
  350. highlight lda menuy
  351. clc
  352. adc menu'current
  353. tax
  354. ldy #0
  355. clc
  356. jsr plot
  357. jsr old'rom'patch
  358. lda menu'highlight
  359. sta mcolor
  360. jsr paint'line
  361.  
  362. lda menuy
  363. clc
  364. adc temp
  365. tax
  366. ldy #0
  367. clc
  368. jsr plot
  369. jsr old'rom'patch
  370. lda menu'text
  371. sta mcolor
  372. jsr paint'line
  373.  
  374. jmp menu'wait
  375.  
  376. paint'line ldy menux1
  377. - lda mcolor
  378. sta (243),y
  379. bmi +
  380. lda (209),y
  381. eor #128
  382. sta (209),y
  383. + iny
  384. cpy menux2
  385. beq -
  386. bcc -
  387. rts
  388.  
  389. ;**** get number from BASIC ****
  390.  
  391. get'number jsr $aefd
  392. jsr $ad8a
  393. jsr $b7f7
  394. lda $14  ; got low byte
  395. rts
  396.  
  397.  
  398. ;***** get string from BASIC ****
  399.  
  400. get'string jsr $aefd
  401. jsr $ad9e
  402. jsr $b6a3
  403.  
  404. ldx $22
  405. ldy $23
  406. rts
  407.  
  408. print'at jsr linx
  409. jsr get'number
  410. sta 211
  411. jsr get'number
  412. sta 214
  413. jsr 58732
  414. jsr get'string
  415. sta temp
  416.  
  417. print'string ldy #0
  418. - lda ($22),y
  419. jsr chrout
  420. iny
  421. cpy temp
  422. bne -
  423. rts
  424.  
  425. ucase jsr get'string
  426. sta temp
  427. ldy #0
  428. - lda ($22),y
  429. cmp #65
  430. bcc +
  431. ora #128
  432. sta ($22),y
  433. + iny
  434. cpy temp
  435. bne -
  436. rts
  437.  
  438. lcase jsr get'string
  439. sta temp
  440. ldy #0
  441. - lda ($22),y
  442. and #127
  443. sta ($22),y
  444. iny
  445. cpy temp
  446. bne -
  447. rts
  448.  
  449. fcase lda #255
  450. sta flag
  451. jsr get'string
  452. sta temp
  453. ldy #0
  454. lda ($22),y
  455. cmp #65
  456. bcc +
  457. ora #128
  458. sta ($22),y
  459. + iny
  460. lda #0
  461. sta flag
  462. ldy #1
  463. - lda ($22),y
  464. and #127
  465. sta ($22),y
  466.  
  467. cmp "."
  468. bne +
  469. dec flag
  470. + cmp "!"
  471. bne +
  472. dec flag
  473. + cmp "?"
  474. bne +
  475. dec flag
  476.  
  477. + bit flag
  478. bmi +
  479. iny
  480. cpy temp
  481. bne -
  482. rts
  483.  
  484. + cmp #65
  485. bcc +
  486. ora #128
  487. sta ($22),y
  488. inc flag
  489. + iny
  490. cpy temp
  491. bne -
  492. rts
  493.  
  494. center jsr get'number
  495. tax
  496. ldy #0
  497. clc
  498. jsr plot
  499.  
  500. jsr get'string
  501. sta temp
  502.  
  503. lsr
  504. sta flag
  505. lda #20
  506. sec
  507. sbc flag
  508. sta 211
  509. jsr 58732
  510. jmp print'string
  511.  
  512. bload jsr get'string
  513. jsr setnam
  514. jsr get'number
  515. tax
  516. lda #1
  517. ldy #0
  518. jsr setlfs
  519. jsr get'number
  520. ldx $14
  521. ldy $15
  522. lda #0
  523. jmp load
  524.  
  525. rload jsr get'string
  526. jsr setnam
  527. jsr get'number
  528. tax
  529. lda #2
  530. ldy #2
  531. jsr setlfs
  532. jsr open
  533. jsr get'number
  534. jsr clrchn
  535. ldx #2
  536. jsr chkin
  537.  
  538. ldy #0
  539. - jsr getin
  540. sei
  541. ldx #$74
  542. stx 1
  543. sta ($14),y
  544. inc $14
  545. bne +
  546. inc $15
  547.  
  548. + ldx #$77
  549. stx 1
  550. cli
  551.  
  552. jsr readst
  553. and #64
  554. beq -
  555.  
  556. lda #2
  557. jsr close
  558. jmp clrchn
  559.  
  560. pfill lda #0
  561. sta temp
  562. - jsr get'number
  563. ldy temp
  564. sta parms,y
  565. inc temp
  566. cpy #7
  567. bne -
  568.  
  569. pfill'box jsr linx
  570. lda 214
  571. pha
  572. lda 211
  573. pha
  574. pbox'start lda #147
  575. jsr chrout
  576. jsr old'rom'patch
  577. ldy #0
  578. sty temp
  579.  
  580. - ldy #0
  581. - lda parms
  582. sta (209),y
  583. lda parms+4
  584. sta (243),y
  585. iny
  586. lda parms+1
  587. sta (209),y
  588. lda parms+5
  589. sta (243),y
  590. dey
  591. jsr q3
  592. iny
  593. iny
  594. cpy #39
  595. bcc -
  596. lda 214
  597. cmp #22
  598. bcs +
  599.  
  600. inc 214
  601. inc 214
  602. jsr 58732
  603. jsr old'rom'patch
  604. jmp --
  605. + jsr fix'bottom
  606. pla
  607. sta 211
  608. pla
  609. sta 214
  610. jmp 58732
  611.  
  612.  
  613. q3 lda 209
  614. clc
  615. adc #40
  616. sta 251
  617. lda #0
  618. adc 210
  619. sta 252
  620. lda 243
  621. clc
  622. adc #40
  623. sta 253
  624. lda 244
  625. adc #0
  626. sta 254
  627. lda parms+2
  628. sta (251),y
  629. lda parms+6
  630. sta (253),y
  631. iny
  632. lda parms+3
  633. sta (251),y
  634. lda parms+7
  635. sta (253),y
  636. dey
  637. rts
  638.  
  639. fix'bottom lda #22
  640. sta 214
  641. jsr 58732
  642. jsr old'rom'patch
  643.  
  644. lda 209
  645. clc
  646. adc #80
  647. sta 251
  648. lda #0
  649. adc 210
  650. sta 252
  651. lda 243
  652. clc
  653. adc #80
  654. sta 253
  655. lda #0
  656. adc 244
  657. sta 254
  658.  
  659.  
  660. ldy #39
  661. - lda (209),y
  662. sta (251),y
  663. lda (243),y
  664. sta (253),y
  665. dey
  666. bpl -
  667. rts
  668.  
  669. p2fill lda #0
  670. sta temp
  671. - jsr get'number
  672. ldy temp
  673. sta parms,y
  674. inc temp
  675. cpy #17
  676. bne -
  677.  
  678. p2fill'box jsr linx
  679. lda 214
  680. pha
  681. lda 211
  682. pha
  683. p2box'start lda #147
  684. jsr chrout
  685. jsr old'rom'patch
  686. ldy #0
  687. sty temp
  688.  
  689. - ldy #0
  690. - lda parms
  691. sta (209),y
  692. lda parms+9
  693. sta (243),y
  694. iny
  695. lda parms+1
  696. sta (209),y
  697. lda parms+10
  698. sta (243),y
  699. iny
  700. lda parms+2
  701. sta (209),y
  702. lda parms+11
  703. sta (243),y
  704. dey
  705. dey
  706. jsr q4
  707. iny
  708. iny
  709. iny
  710. cpy #37
  711. bcc -
  712. lda 214
  713. cmp #21
  714. bcs +
  715.  
  716. inc 214
  717. inc 214
  718. inc 214
  719. jsr 58732
  720. jsr old'rom'patch
  721. jmp --
  722. + jsr fix'side
  723. pla
  724. sta 211
  725. pla
  726. sta 214
  727. jmp 58732
  728.  
  729.  
  730. q4 lda 209
  731. clc
  732. adc #40
  733. sta 251
  734. lda #0
  735. adc 210
  736. sta 252
  737. lda 243
  738. clc
  739. adc #40
  740. sta 253
  741. lda 244
  742. adc #0
  743. sta 254
  744. lda parms+3
  745. sta (251),y
  746. lda parms+12
  747. sta (253),y
  748. iny
  749. lda parms+4
  750. sta (251),y
  751. lda parms+13
  752. sta (253),y
  753. iny
  754. lda parms+5
  755. sta (251),y
  756. lda parms+14
  757. sta (253),y
  758. dey
  759. dey
  760. lda 251
  761. clc
  762. adc #40
  763. sta 251
  764. lda #0
  765. adc 252
  766. sta 252
  767. lda 253
  768. clc
  769. adc #40
  770. sta 253
  771. lda 254
  772. adc #0
  773. sta 254
  774. lda parms+6
  775. sta (251),y
  776. lda parms+15
  777. sta (253),y
  778. iny
  779. lda parms+7
  780. sta (251),y
  781. lda parms+16
  782. sta (253),y
  783. iny
  784. lda parms+8
  785. sta (251),y
  786. lda parms+17
  787. sta (253),y
  788. dey
  789. dey
  790. rts
  791.  
  792. fix'side lda #19
  793. jsr chrout
  794. jsr old'rom'patch
  795.  
  796. - ldy #0
  797. lda (209),y
  798. tax
  799. lda (243),y
  800.  
  801. ldy #39
  802. sta (243),y
  803. txa
  804. sta (209),y
  805.  
  806. lda 214
  807. cmp #24
  808. beq +
  809. inc 214
  810. jsr 58732
  811. jsr old'rom'patch
  812. jmp -
  813.  
  814. + lda #21
  815. sta 214
  816. jsr 58732
  817. jsr old'rom'patch
  818.  
  819. lda 209
  820. clc
  821. adc #120
  822. sta 251
  823. lda #0
  824. adc 210
  825. sta 252
  826. lda 243
  827. clc
  828. adc #120
  829. sta 253
  830. lda #0
  831. adc 244
  832. sta 254
  833.  
  834.  
  835. ldy #39
  836. - lda (209),y
  837. sta (251),y
  838. lda (243),y
  839. sta (253),y
  840. dey
  841. bpl -
  842. rts
  843.  
  844. brancher lda #0
  845. sta flag
  846. jsr get'string
  847. sta temp
  848. - jsr getin
  849. beq -
  850.  
  851. ldy #0
  852. - cmp ($22),y
  853. bne +
  854. iny
  855. tya
  856. clc
  857. adc #48
  858. sta 631
  859. lda #9
  860. sta 198
  861. rts
  862. + iny
  863. cpy temp
  864. bne -
  865. beq --
  866.  
  867. bput jsr get'string
  868. jsr setnam
  869. jsr get'number
  870. tax
  871. lda #1
  872. ldy #1
  873. jsr setlfs
  874. jsr open
  875. jsr get'number
  876. sta 251
  877. lda $15
  878. sta 252
  879. jsr get'number
  880. sta 249
  881. lda $15
  882. sta 250
  883. jsr clrchn
  884. ldx #1
  885. jsr chkout
  886.  
  887. lda 251
  888. jsr chrout
  889. lda 252
  890. jsr chrout
  891.  
  892. bsave ldy #0
  893. - sei
  894. ldx #$74
  895. stx 1
  896. lda (251),y
  897. inc 251
  898. bne +
  899. inc 252
  900.  
  901. + ldx #$77
  902. stx 1
  903. cli
  904.  
  905. jsr chrout
  906. lda 252
  907. cmp 250
  908. bcc -
  909. lda 251
  910. cmp 249
  911. bcc -
  912.  
  913. lda #1
  914. jsr close
  915. jmp clrchn
  916.  
  917. rbput jsr get'string
  918. jsr setnam
  919. jsr get'number
  920. tax
  921. lda #1
  922. ldy #1
  923. jsr setlfs
  924. jsr open
  925. jsr get'number
  926. sta 251
  927. lda $15
  928. sta 252
  929. jsr get'number
  930. sta 249
  931. lda $15
  932. sta 250
  933. jsr clrchn
  934. ldx #1
  935. jsr chkout
  936.  
  937. jsr get'number
  938. jsr chrout
  939. lda $15
  940. jsr chrout
  941.  
  942. jmp bsave
  943.  
  944. dir jsr get'string
  945. jsr setnam
  946. jsr get'number
  947. sta device
  948. lda #17;            file number
  949. ldx device
  950. ldy #0
  951. jsr $ffba; n        setlfs
  952. jsr $ffc0;           open
  953. ldx #17
  954. jsr $ffc6;         
  955.  
  956. jsr get'byte
  957. jsr get'byte;        skip first two bytes
  958.  
  959. first jsr $ffb7;     read status
  960. and #64
  961. bne dir'out
  962.  
  963. jsr get'byte
  964. jsr get'byte;         skip two bytes
  965.  
  966. second jsr $ffb7
  967. and #64;              eof?
  968. bne dir'out
  969. jsr get'byte
  970. tax
  971. jsr get'byte
  972. jsr $bdcd
  973. lda " "
  974. jsr $ffd2
  975.  
  976. jsr $ffb7
  977. and #64;               eof?
  978. bne dir'out
  979.  
  980. third jsr get'byte
  981. bne +
  982.  
  983. lda #13
  984. jsr $ffd2
  985. jmp first
  986.  
  987. + jsr $ffd2
  988. jsr $ffb7
  989. and #64
  990. bne dir'out
  991.  
  992. jmp third
  993.  
  994. get'byte jsr $ffcf;   chrin
  995. rts
  996.  
  997.  
  998.  
  999. dir'out lda #17
  1000. jsr $ffc3;            close17
  1001. jsr $ffcc ;clear chan
  1002.  
  1003. rts
  1004.  
  1005. ;sys,name,device,font location
  1006. doodle jsr get'string
  1007. jsr setnam
  1008. jsr get'number
  1009. sta device
  1010. jsr get'number
  1011. sta 251
  1012. lda $15
  1013. sta 252
  1014. ldx device
  1015. lda #1
  1016. ldy #1
  1017. jsr setlfs
  1018. jsr open
  1019. ldx #1
  1020. jsr chkout
  1021.  
  1022. lda #3
  1023. sta count
  1024.  
  1025. lda <23552
  1026. jsr chrout
  1027. lda >23552
  1028. jsr chrout
  1029.  
  1030. ldy #0
  1031. ldx #0
  1032.  
  1033. lda <$d800
  1034. sta 253
  1035. lda >$d800
  1036. sta 254
  1037.  
  1038. lda #3
  1039. sta count
  1040.  
  1041. ldy #0
  1042. - lda (253),y
  1043. and #15
  1044. asl
  1045. asl
  1046. asl
  1047. asl
  1048. sta temp
  1049. lda 53280
  1050. and #15
  1051. ora temp
  1052. jsr chrout
  1053. iny
  1054. bne -
  1055. inc 254
  1056. dec count
  1057. bpl -
  1058.  
  1059.  
  1060. bitmap lda 648
  1061. sta 254
  1062. lda #0
  1063. sta 253
  1064. lda #0
  1065. sta row
  1066. lda #24
  1067. sta count
  1068. ldy #0
  1069.  
  1070. - lda 251
  1071. sta 249
  1072. lda 252
  1073. sta 250
  1074. lda #0
  1075. sta add
  1076. sta add+1
  1077. lda (253),y
  1078. sta temp
  1079. sta add
  1080. sty tempy
  1081. jsr bitmap'math
  1082. ldy tempy
  1083. iny
  1084. cpy #40
  1085. bne -
  1086. ldy #0
  1087. clc
  1088. lda #40
  1089. adc 253
  1090. sta 253
  1091. lda #0
  1092. adc 254
  1093. sta 254
  1094. dec count
  1095. bpl -
  1096.  
  1097. ldy #191
  1098. - jsr chrout
  1099. dey
  1100. cpy #255
  1101. bne -
  1102.  
  1103. lda #1
  1104. jsr close
  1105. jmp clrchn
  1106.  
  1107.  
  1108. bitmap'math lda #0
  1109. sta add+1
  1110.  
  1111. lda temp
  1112. sta add
  1113. asl add
  1114. bcc +
  1115. inc add+1
  1116. + asl add+1
  1117. asl add
  1118. bcc +
  1119. lda #1
  1120. ora add+1
  1121. sta add+1
  1122. + asl add+1
  1123. asl add
  1124. bcc +
  1125. lda #1
  1126. ora add+1
  1127. sta add+1
  1128.  
  1129. + clc
  1130. lda add
  1131. adc 251
  1132. sta 249
  1133. lda add+1
  1134. adc 252
  1135. sta 250
  1136.  
  1137. ldy #0
  1138. - sei
  1139. ldx #$74
  1140. stx 1
  1141. lda (249),y
  1142. ldx #$77
  1143. stx 1
  1144. cli
  1145. jsr chrout
  1146. iny
  1147. cpy #8
  1148. bcc -
  1149. rts
  1150.  
  1151. reader lda #147
  1152. jsr chrout
  1153.  
  1154. jsr get'string
  1155. jsr setnam
  1156. jsr get'number
  1157. tax
  1158. lda #2
  1159. ldy #2
  1160. jsr setlfs
  1161. jsr open
  1162. ldx #2
  1163. jsr chkin
  1164.  
  1165. - jsr getin
  1166. jsr chrout
  1167. sta 251
  1168. jsr readst
  1169. and #64
  1170. bne eof
  1171. lda 251
  1172. cmp #13
  1173. bne -
  1174. lda 214
  1175. cmp #22
  1176. bcc -
  1177.  
  1178. ldx #24
  1179. ldy #6
  1180. clc
  1181. jsr plot
  1182. inc 199
  1183.  
  1184. ldy >text
  1185. lda <text
  1186. jsr strout
  1187.  
  1188. jsr clrchn
  1189.  
  1190. - jsr getin
  1191. beq -
  1192.  
  1193. cmp " "
  1194. bne +
  1195. lda #147
  1196. jsr chrout
  1197. ldx #2
  1198. jsr chkin
  1199. jmp --
  1200.  
  1201. + cmp "q"
  1202. bne -
  1203. - lda #2
  1204. jsr close
  1205. jmp clrchn
  1206.  
  1207. eof jsr clrchn
  1208. - jsr getin
  1209. beq -
  1210. jmp --
  1211.  
  1212. char'repeat jsr get'number
  1213. sta add
  1214. lda $15
  1215. sta add+1
  1216.  
  1217. jsr get'string
  1218. sta temp
  1219.  
  1220. - ldy #0
  1221. - lda ($22),y
  1222. jsr chrout
  1223. iny
  1224. cpy temp
  1225. bne -
  1226.  
  1227. dec add
  1228. lda add
  1229. cmp #255
  1230. bne --
  1231.  
  1232. dec add+1
  1233. lda add+1
  1234. cmp #255
  1235. bne --
  1236. rts
  1237.  
  1238. old'rom'patch lda 210
  1239. sec
  1240. sbc 648
  1241. clc
  1242. adc #$d8
  1243. sta 244
  1244. lda 209
  1245. sta 243
  1246. rts
  1247.  
  1248. text .asc " SPACE - Continue  Q - Quit ":.byt 19,13,159,0
  1249. tempy .byt 0
  1250. add .word 0
  1251. count .byt 0
  1252. row .byt 0
  1253. menuy .byt 0
  1254. menux1 .byt 0
  1255. menux2 .byt 0
  1256. menu'items .byt 0
  1257. menu'text .byt 0
  1258. menu'highlight .byt 0
  1259. exit'key .byt 0
  1260. menu'current .byt 0
  1261. mcolor .byt 0
  1262. device .byt 0
  1263. parms .buf 20
  1264. x1 .byt 0
  1265. x2 .byt 0
  1266. y1 .byt 0
  1267. y2 .byt 0
  1268. screen'code .byt 0
  1269. box'color .byt 0
  1270. flag .byt 0
  1271. temp .byt 0
  1272.